#ifndef GAME_H
#define GAME_H

#include "level.h"
#include "character.h"

class Game
  {
  public:
      Game();

      // 游戏保存的格式 Json、Binary（二进制）
      enum SaveFormat {
          Json, Binary
      };

      const Character &player() const;
      const QList<Level> &levels() const;

      void newGame();
      bool loadGame(SaveFormat saveFormat);
      bool saveGame(SaveFormat saveFormat) const;

      void read(const QJsonObject &json);
      void write(QJsonObject &json) const;
  private:
      Character mPlayer;
      QList<Level> mLevels;
  };
#endif // GAME_H
